Autores:

Mateo Zuluaga Giraldo

Angy Ortiz Mesa

Sandra Catalina Areiza Cortés

Introducción

El presente informe tiene como objetivo desarrollar una serie de preguntas con base en una base de datos proveniente de un portal inmobiliario.

Con base en los datos de ofertas de vivienda descargadas del portal Fincaraiz(datos_vivienda.xls) realizar los siguientes puntos:

Cargar Datos

library(ggplot2)
library(plotly)
## 
## Attaching package: 'plotly'
## The following object is masked from 'package:ggplot2':
## 
##     last_plot
## The following object is masked from 'package:stats':
## 
##     filter
## The following object is masked from 'package:graphics':
## 
##     layout
datos = read.csv2("E:/Mateo/Universidad/Estadística 2/Informe1RLS/datos_vivienda.xlsx - Sheet1.csv", header = TRUE, sep = ",")
attach(datos) 

Se observa que la base de datos contiene informacion sobre el registro del precio (y) de unas viviendas de acuerdo al area (x) construida.

1. Realice un análisis exploratorio de las variables precio de vivienda (millones de pesos COP) y área de la vivienda (metros cuadrados) - incluir gráficos e indicadores apropiados interpretados.

summary(datos)
##  Area_contruida  precio_millon  
##  Min.   : 80.0   Min.   :240.0  
##  1st Qu.: 86.0   1st Qu.:251.2  
##  Median : 97.0   Median :305.0  
##  Mean   :115.7   Mean   :332.1  
##  3rd Qu.:130.0   3rd Qu.:395.0  
##  Max.   :195.0   Max.   :480.0
hist(Area_contruida, main = "Datos Áreas viviendas", xlab = "Área de la vivienda", 
     ylab = "Datos" , col = "orange")

hist(precio_millon, main = "Datos de precios", xlab = "Precio en millones", 
     ylab = "Datos", col = "sky blue")

Se observa que el promedio de area construida es de 115.7 metros cuadrados, mientras que el promedio del precio es de 332 millones de pesos.

Tambien se detecta que la distribucion del area contruida esta sesgada a la derecha. Esto quiere decir, que la mayoria de viviendas tiene un area contruida entre 80 y 100 metros cudrados.

El histograma de precios refleja dos picos de acuerdo al precio de las viviendas. La mayoria de viviendas tienen precios entre 200 y 300 millones y otra proporcion considerable se encuentra entre 350 y 450 millones de pesos.

2. Realice un análisis exploratorio bivariado de datos enfocado en la relaciónentre la variable respuesta (y=precio) en función de la variable predictora (x=area) - incluir gráficos e indicadores apropiados interpretados.

g2 = ggplot(data = datos, mapping = aes(x = Area_contruida, y = precio_millon))
g2 = g2+geom_point(colour = "orange", size = 2, pch = ".")
ggplotly(g2)
cor(Area_contruida,precio_millon)
## [1] 0.9190295

Veamos la correlacion entre area contruida y el precio. Se observa que a mayor area construida el precio aumenta y su relacion es fuerte de acuerdo con el coeficiente de correlacion de Pearson que en este caso nos dio \(Coeficiente~de~correlacion=0.919\).

3. Estime el modelo de regresión lineal simple entre precio = f(area) + e. Interprete los coeficientes del modelo B0, B1 en caso de ser correcto.

modelo=lm(precio_millon~Area_contruida)
summary(modelo)
## 
## Call:
## lm(formula = precio_millon ~ Area_contruida)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -51.673 -25.612  -6.085  24.875  67.650 
## 
## Coefficients:
##                Estimate Std. Error t value Pr(>|t|)    
## (Intercept)      86.234     22.479   3.836 0.000796 ***
## Area_contruida    2.124      0.186  11.422 3.45e-11 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 33.05 on 24 degrees of freedom
## Multiple R-squared:  0.8446, Adjusted R-squared:  0.8381 
## F-statistic: 130.5 on 1 and 24 DF,  p-value: 3.45e-11
g1 = ggplot(data = datos, mapping = aes(x = Area_contruida, y = precio_millon))
g1 = g1+geom_point(colour = "black", size = 2, pch = "º") + geom_smooth(datos = datos, method = "lm", colour = "light green", level = 0.95)+stat_summary()
## Warning: Ignoring unknown parameters: datos
ggplotly(g1)
## `geom_smooth()` using formula 'y ~ x'
## No summary function supplied, defaulting to `mean_se()`

El coeficiente \(\beta_0\) no se debe interpretar, porque no se observan valores de area cero y no tiene sentido hablar sobre una vivienda con ningun metro cuadrado. Por otro lado el \(\beta_1=2.124\) nos indica que por cada metro cuadrado adicional que se construya, se espera que el precio se incremente en promedio 2’124.000. Adicionalmente se observa que el coeficiente es significativamente distinto de cero.(Por el Valor_p).

4. Construir un intervalo de confianza (95%) para el coeficiente B1, interpretar y concluir si el coeficiente es igual a cero o no. Compare esteresultado con una prueba de hipotesis t.

Intervalo de confianza para \(\beta_1\).

confianza=0.95
t=qt((confianza+(1-confianza)/2),df=-2+length(precio_millon))

B1=summary(modelo)$coefficients[2]

errorB1=summary(modelo)$coefficients[4]


cat("El límite inferior es: ", B1-(t*errorB1), ", y el límite superior es: ", B1+(t*errorB1))
## El límite inferior es:  1.74017 , y el límite superior es:  2.507771

Con una confianza del 95% se puede concluir que el verdadero valor de \(\beta_1\), del efecto del area contruida sobre el precio de las viviendas, se encuentra entre 1.74 y 2.51.

Como el cero no esta incluido en este intervalo, \(\beta_1\) es significativo.

Prueba de hipotesis para \(\beta_1\).

Hipotesis

\[\left\{\begin{matrix} H0:\beta _1=0\\ H1:\beta _1\neq 0 \end{matrix}\right.\]

Estadistico de Prueba.

\[t_0=\frac{\hat{\beta _1}}{Se(\hat{\beta _1})}\sim t_{(n-2)}\]

\[t_0=\frac{2.124}{0.186}\]

\[t_0=11.419\]

t_estadistico<-qt(1-0.025,24)
t_estadistico
## [1] 2.063899

Como \(t_0\) es mayor que el \(t~_{estadistico}\) se rechaza \(H_0\), luego \(\beta_1\) es significativo.

Haciendo una comparacion con el resultado del intervalo de confianza y con la prueba de hipotesis t se llega a la misma conclusion de que \(\beta_1\) es significativo.

5. Calcule e interprete el indicador de bondad y ajuste R^2.

rsq=cor(Area_contruida,precio_millon)^2
rsq
## [1] 0.8446152

Se observa que el ajustedel modelo es de \(R^2=0.8446\), es decir que el modelo explica el 84% de la variabilidad del precio.

6. ¿Cuál sería el precio promedio estimado para un apartamento de 110 metros cuadrados? Considera entonces con este resultado que un apartamento en la misma zona con 110 metros cuadrados en un precio de 200 millones sería una buena oferta? Qué consideraciones adicionales se deben tener?.

De acuerdo con el modelo, el precio promedio estimado para una vivienda con 110 metros cuadrados es de 319.87 millones de pesos.

predict(modelo, list(Area_contruida=110))
##        1 
## 319.8706

Teniendo en cuenta que una vivienda con 110 metros cuadrados en promedio tiene un costo entre 306 y 333 millones de pesos, podemos decir que una oferta de 200 millones es un valor inferior al precio estimado según el modelo, así que puede ser una buena oferta analizando otros factores.

predict(modelo,list(Area_contruida=110),interval = "confidence", level=0.95)
##        fit      lwr      upr
## 1 319.8706 306.3133 333.4279
summary(modelo)$coefficients[1] + summary(modelo)$coefficients[2]*110
## [1] 319.8706
plot(110,200, xlim = c(0,200), ylim = c(0,500), col = "red", pch = 20)
abline(modelo,col="sky blue")

diferencia = summary(modelo)$coefficients[1] + summary(modelo)$coefficients[2]*110 - 200
diferencia
## [1] 119.8706

La diferencia entre la oferta de 200 millones y el precio estimado por el modelo es de casi 120 millones, es decir es una oferta que está 120 millones por debajo del precio de mercado promedio, en la anterior gráfica se puede observar la distancia entre esete punto y el modelo.

7. Realice la validación de supuestos del modelo por medio de graficos apropiados, interpretarlos y sugerir posibles soluciones si se violan algunos de ellos.

Varianza constante

Hipotesis

\[\left\{\begin{matrix} H_0:Var(\varepsilon _i)=\sigma ^2\\ H_1:Var(\varepsilon _i)\neq \sigma ^2 \end{matrix}\right.\]

plot(fitted(modelo),residuals(modelo), xlab = "Area ajustados", ylab = "Residuales", main = "Residuales vs. valores ajustados")
abline(h=0,lty=2,col=2)

Normalidad

Hipotesis

\[\left\{\begin{matrix} H_0:\varepsilon _i \sim Normal\\ H_1:\varepsilon _i \sim No~Normal \end{matrix}\right.\]

par(mfrow=c(1,1))
plot(modelo)

8. De ser necesario, realice una transformación apropiada para mejorar el ajuste y supuestos del modelo.

plot(Area_contruida,precio_millon)
abline(modelo)

cor(Area_contruida,precio_millon)
## [1] 0.9190295
transx = 1/log(Area_contruida)
modelx = lm(precio_millon~transx)


plot(transx,precio_millon)
abline(modelx)

cor(transx,precio_millon)
## [1] -0.9543395

9. De ser necesario compare el ajuste y supuestos del modelo inicial y el transformado.

cor(Area_contruida,precio_millon)
## [1] 0.9190295
cor(transx,precio_millon)
## [1] -0.9543395

Varianza constante

Hipotesis

\[\left\{\begin{matrix} H_0:Var(\varepsilon _i)=\sigma ^2\\ H_1:Var(\varepsilon _i)\neq \sigma ^2 \end{matrix}\right.\]

plot(fitted(modelx),residuals(modelx), xlab = "Area ajustados", ylab = "Residuales", main = "Residuales vs. valores ajustados")
abline(h=0,lty=2,col=2)

Normalidad

Hipotesis

\[\left\{\begin{matrix} H_0:\varepsilon _i \sim Normal\\ H_1:\varepsilon _i \sim No~Normal \end{matrix}\right.\]

par(mfrow=c(1,1))
plot(modelx)

10. Realizar una función en R la cual permita ingresar el valor de X, Y, (1-alpha)% en una regresión lineal simple y retorne el intervalo de confianza para B1 dado un nivel de confianza de entrada (1-alpha)%.

IC=function(x,y,c){
  mod=lm(y~x)
  t=qt((c+(1-c)/2),df=-2+length(y))
  
  B1=summary(mod)$coefficients[2]
  
  errorB1=summary(mod)$coefficients[4]
  
  cat("El límite inferior es: ", B1-(t*errorB1), ", y el límite superior es: ", B1+(t*errorB1), "con un nivel de confianza del ", c*100,"%")
}


#Poner ejemplos
IC(Area_contruida,precio_millon,0.95)
## El límite inferior es:  1.74017 , y el límite superior es:  2.507771 con un nivel de confianza del  95 %
IC(sample(1:40,30), sample(40:400,30),0.95)
## El límite inferior es:  -4.858059 , y el límite superior es:  2.715018 con un nivel de confianza del  95 %